import request from "@/utils/request";

/* 以下是三级分类的内容 */

export interface reqCategoryItemType {
    id:number;
    name:string;
    category1Id?:number;
    category2Id?:number;
}

export type reqCategoryType =reqCategoryItemType[];

// 1.请求一级分类列表
export const requestCategory1 =()=>{
    return request.get<any,reqCategoryType>(`/admin/product/getCategory1`);
};

// 2.请求二级分类列表
export const requestCategory2 =(category1Id:number)=>{
    return request.get<any,reqCategoryType>(`/admin/product/getCategory2/${category1Id}`);
};

// 3.请求三级分类列表
export const requestCategory3 =(category2Id:number)=>{
    return request.get<any,reqCategoryType>(`/admin/product/getCategory3/${category2Id}`);
};

/* 以下是Attr的内容 */

//某个属性内属性值列表的类型
export interface attrValueListType {
    id?: number;
    valueName: string;
    attrId: number | undefined;
    isEdit?: boolean;
  }
  

//某个属性的类型
export interface attrListItemType {
    id?:number;
    attrName:string;
    categoryId:number;
    categoryLevel:number;
    attrValueList: attrValueListType[];
    attrIdValueId?: string;
}

// 属性列表的类型
export type attrListType = attrListItemType [];

//4.获取当前三级分类的属性
export const requestAttrList = (
    category1Id: number,
    category2Id: number,
    category3Id: number
  ) => {
    return request.get<any, attrListType>(
      `/admin/product/attrInfoList/${category1Id}/${category2Id}/${category3Id}`
    );
  };

//5.删除某个属性
export const requestDeleteAttr = (attrId:number) =>{
    return request.delete<any, null>(`/admin/product/deleteAttr/${attrId}`);
};

// 6.新增或修改属性
 export const requestUpdateOrAddAttr = (newAttr:attrListItemType) =>{
    return request.post<any, null>(`/admin/product/saveAttrInfo`, newAttr);
};
